The atomic library provides components for fine-grained atomic operations allowing for lockless concurrent programming.
Atomic types
|
|
|
|
| atomic class template and specializations for bool, integral, and pointer types (class template)
|
|
|
|
| checks if the atomic type's operations are lock-free (function template)
|
Operations on atomic types
|
|
|
|
| atomically replaces the value of the atomic object with a non-atomic argument (function template)
|
|
|
|
| atomically obtains the value stored in an atomic object (function template)
|
|
|
|
| atomically replaces the value of the atomic object with non-atomic argument and returns the old value of the atomic (function template)
|
|
|
|
| atomically compares the value of the atomic object with non-atomic argument and performs atomic exchange if equal or atomic load if not (function template)
|
|
|
|
| adds a non-atomic value to an atomic object and obtains the previous value of the atomic (function template)
|
|
|
|
| subtracts a non-atomic value from an atomic object and obtains the previous value of the atomic (function template)
|
|
|
|
| replaces the atomic object with the result of logical AND with a non-atomic argument and obtains the previous value of the atomic (function template)
|
|
|
|
| replaces the atomic object with the result of logical OR with a non-atomic argument and obtains the previous value of the atomic (function template)
|
|
|
|
| replaces the atomic object with the result of logical XOR with a non-atomic argument and obtains the previous value of the atomic (function template)
|
Flag type and operations
|
|
|
|
| the lock-free boolean atomic type (class)
|
|
|
|
| atomically sets the flag to true and returns its previous value (function)
|
|
|
|
| atomically sets the value of the flag to false (function)
|
Initialization
|
|
|
|
| non-atomic initialization of a default-constructed atomic object (function template)
|
|
|
|
| constant initialization of an atomic variable of static storage duration (function macro)
|
|
|
|
| initializes an std::atomic_flag to false (function macro)
|
Memory synchronization order
|
|
|
|
| defines non-atomic memory synchronization order for operation ordering (typedef)
|
|
|
|
| relaxes memory synchronization order requirements for specified subobjects (function template)
|
|
|
|
| generic memory order-dependent fence synchronization primitive (function)
|
|
|
|
| fence between a thread and a signal handler executed in the same thread (function)
|